<?
	class c_linkage_controller extends c_base_controller
	{
		function index($args)
		{			
			global $mvc;
			
			$linkage = new c_linkage_model();		
			
			/*
			// (1,2,3,4) Все параметры, проверка наличия связи.
			$sql = $linkage->make_sql('SELECT * FROM workers, (linkage:workers,10,firms,9)');
			echo $sql.'<br>';

			// (,2,3,4) Без первого параметра - ищем дочерние пользовательские типы.
			$sql = $linkage->make_sql('SELECT * FROM workers, (linkage:,-1,firms,9)');
			echo $sql.'<br>';
			
			// (1,,3,4) Без второго параметра - ищем дочерние записи в таблице workers.
			$sql = $linkage->make_sql('SELECT * FROM workers, (linkage:workers,,firms,9)');
			echo $sql.'<br>';			
			
			// (1,2,,4) Без 3 параметра - ищем пользовательские типы к которым привязан наш тип.
			$sql = $linkage->make_sql('SELECT * FROM workers, (linkage:workers,-1,,-1)');
			echo $sql.'<br>';
			
			// (1,2,3,) Без 4 параметра - ищем всех владельцев (записей в таблице parent) данного элемента.
			$sql = $linkage->make_sql('SELECT * FROM workers, (linkage:workers,-1,parent,)');
			echo $sql.'<br>';
						
			die();
			
			
			
			// Clear.
			$linkage->detach(0, 0, 0, 0);
			$this->showlinks();			
			
			
			echo '<pre>';

			// Получить все связи.
			$data = $mvc->db->get_data('SELECT * FROM link'); // pname, pid, cname, cid

			// Привязать запись к записи.
			$linkage->attach('spents', 10, 'views', 12);
			$linkage->attach('spents', 11, 'views', 12);
			$linkage->attach('spents', 12, 'views', 12);
			//$this->showlinks();

			
			// Отвязать запись от записи.
			$linkage->detach('spents', 12, 'views', 12);
			//$this->showlinks();

			// Отвязать все записи определенного типа от записи.
			$linkage->detach('spents', 0, 'views', 12);			
			//$this->showlinks();

			// Отвязать все записи от записи.
			$linkage->detach(0, 0, 'views', 12);						
			//$this->showlinks();

			// Заменить привзяку записей определенного типа.
			$linkage->detach('spents', 0, 'views', 12);
			$linkage->attach('spents', 10, 'views', 12);
			$linkage->attach('spents', 11, 'views', 12);
			$linkage->attach('spents', 12, 'views', 12);
			//$this->showlinks();

			// --- Фалйы
			
			// Привязать пользовательский тип данных к записи. (Пусть файл имеет тип -1).
			$linkage->attach('picture1.jpg', -1, 'gallery', 3);
			$linkage->attach('picture2.jpg', -1, 'gallery', 3);
			$this->showlinks();
			
			// Получить все файлы (тип -1) привязанные к записи. Пустые параметры в условии не учавствуют.
			$sql = $linkage->make_sql('SELECT cname FROM (linkage:,-1,gallery,3)');
			echo $sql;
			$data = $mvc->db->get_data($sql);
			print_r($data);	
			echo '<hr>';
			
			*/
			
			echo '<pre>';
			
			
			
			
			$this->showlinks();
			
			echo '<form action="'.$this->base_url.'query" method="post" style="float:right">
				<input type="hidden" name="debug" value="asdas" >
				query<textarea name="query" style="width:500px; height:100px">'.$args['query'].'</textarea>
				<input type="submit" />
				</form>
			';			
			
			
			echo '<form action="'.$this->base_url.'attach" method="post">
				cname<input name="cname">
				cid<input name="cid">
				pname<input name="pname">
				pid<input name="pid">
				<input type="submit" />
				</form>
			';
		}
		
		function showlinks()
		{
			global $mvc;
			$data = $mvc->db->get_data('SELECT * FROM link'); // pname, pid, cname, cid
			echo '<table border="1" cellspacing="0" cellpadding="4">';
				echo '<tr>';
				echo '<td>cname</td>';
				echo '<td>cid</td>';
				echo '<td>pname</td>';
				echo '<td>pid</td>';
				echo '</tr>';			
			foreach($data as $row)
			{
				echo '<tr>';
				echo '<td>'.$row['cname'].'</td>';
				echo '<td>'.$row['cid'].'</td>';
				echo '<td>'.$row['pname'].'</td>';
				echo '<td>'.$row['pid'].'</td>';
				echo '</tr>';
			}
			echo '</table>';
			echo '<hr>';
		}
		
		function attach($args)
		{
			print_r($args);
			
			$linkage = new c_linkage_model();
			$linkage->attach($args['cname'], $args['cid'], $args['pname'], $args['pid']);
			
			return $this->index($args);
		}
		
		function detach($args)
		{
		}
		
		function query($args)
		{
			$sql = $args['query'];
			$linkage = new c_linkage_model();
			$sql = $linkage->make_sql($sql);
			echo $sql;
			
			global $mvc;
			echo '<pre>';
			print_r($mvc->db->get_data($sql));
			return $this->index($args);
		}
	}
?>